/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package src.commands;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import src.Command;
import src.ListaMensajes;
import src.ListaUsuarios;
import src.Mensaje;
import src.Usuario;
import src.exceptions.eSessionNoValida;

/**
 *
 * @author pabloavila
 */
public class DoPost implements Command{

    // Para postear un mensaje necesitaremos:
    // 1) Usuario
    // 2) Texto del Mensaje

    Usuario u;
    String texto;    
    HttpSession session;

    public DoPost(HttpServletRequest request, HttpServletResponse response) {

        // Cogemos el autor del mensaje
        session = request.getSession(false);
        if (session != null){
            u = (Usuario) session.getAttribute("ses_usr");   // OJO
            texto = (String) session.getAttribute("texto"); // OJO
        }
        

    }

    @Override
    public void Execute() {

        try {

            if (session != null && texto != null && !texto.equals("") && u!=null){
                // Insertar el mensaje en la lista de Mensajes
                ListaMensajes lm = (ListaMensajes) session.getAttribute("ses_msg");
                // Mensaje
                Mensaje m = new Mensaje(texto,u);
                // Lo añadimos
                lm.insertarMensaje(m);

                 // Y notificamos
                session.setAttribute("ses_notify", "Mensaje insertado con exito");
                session.setAttribute("ses_sign", true);
            }
            else {
                session.setAttribute("ses_notify", "Error al crear el mensaje");
                session.setAttribute("ses_sign",false);
                throw new eSessionNoValida("Error al crear el mensaje");
            }
        
        }
        catch(Exception e){
            
        }
    }

}
